home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 17 / AMIGAplus Sonderheft 17 (1999)(ICP)(DE)[!].iso / Rexx / CadrerTexte.AmiCAD < prev    next >
Text File  |  1998-08-08  |  2KB  |  53 lines

  1. /* Création d'un cadre avec effet de relief autour d'un texte ou plusieurs textes */
  2. /* © R.Florac, Samedi 28 Mars 1998, version 1.00 */
  3. /* Version 1.01: 13/04/98 */
  4. /* Version 1.02: 07/06/98 Correction bug SAVEALL */
  5. /* Version 1.03: 14/07/98 modification tracé lignes (lignes personnalisées) */
  6. /* $VER: CadrerTexte 1.03 (© R.Florac, 14/07/98) */
  7. /* Seuls les textes "normaux" sont utilisables, les textes ayant été tournés ne sont pas gérés */
  8. /* Les références ou valeurs de composants ne sont pas acceptées */
  9.  
  10. options results     /* indispensable pour récupérer le résultat des macros */
  11.  
  12. signal on error     /* pour l'interception des erreurs */
  13. signal on syntax
  14.  
  15. 'FIRSTSEL'; objet=result
  16. if objet=0 then do
  17.     'MESSAGE("Sélectionnez d''abord"+CHR(10)+"les textes à encadrer")'
  18.     exit
  19. end
  20.  
  21. xg=100000; xd = 0; yh = 10000; yb = 0; textes=objet
  22. do while objet>0
  23.     'TYPE('objet')'
  24.     if result ~= 4 then do
  25.     'BLINK('objet')'
  26.     'MESSAGE("Objet de type incorrect"+CHR(10)+"Ne sélectionnez que"+CHR(10)+"des textes S.V.P.")'
  27.     exit
  28.     end
  29.     'COORDS('objet')'; coord=result
  30.     PARSE VAR coord x0 ',' y0
  31.     if x0<xg then xg=x0
  32.     if y0>yb then yb=y0
  33.     'WIDTH('objet')'; x0=x0+result
  34.     if x0>xd then xd=x0
  35.     'HEIGHT('objet')'; y0=y0-result
  36.     if y0<yh then yh=y0
  37.     textes=textes||','||objet
  38.     'NEXTSEL('objet')'; objet=result
  39. end
  40. xg=xg-4; xd=xd+6; yh=yh; yb=yb+3
  41. 'SAVEALL(-1):DRAWMODE(-1):MARK(L1=DRAW('xg','yh','xd','yh')):MARK(L2=DRAW('xg','yh','xg','yb')):DRAWMODE(-2):MARK(L3=DRAW('xd','yh'+1,'xd','yb')):MARK(L4=DRAW('xg'+1,'yb','xd','yb')):GROUP('textes',L1,L2,L3,L4)'
  42. exit
  43.  
  44. /* Traitement des erreurs, interruption du programme */
  45. syntax:
  46. erreur=RC
  47. 'MESSAGE("Script CadrerTexte"+CHR(10)+"Erreur de syntaxe"+CHR(10)+"en ligne 'SIGL'"+CHR(10)+"'errortext(erreur)'")'
  48. exit
  49.  
  50. error:
  51. 'MESSAGE("Script CadrerTexte"+CHR(10)+"Erreur en ligne 'SIGL'")'
  52. exit
  53.